package com.github.itdachen.sdk.vo;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


/**
 * 代码生成业务表 VO
 *
 * @author 王大宸
 * @date 2023-09-23 21:25:55
 */
public class DevTableInfoVO implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键唯一标识 */
    private String id;

    /** 表名称 */
    private String tableName;

    /** 应用ID */
    private String appId;

    /** 上级菜单目录id */
    private String menuId;

    /** 浏览器打开方式 */
    private String iframe;

    /** 功能名 */
    private String funcName;

    /** 生成功能作者 */
    private String funcAuthor;

    /** 实体类名称 */
    private String clazzName;

    /** 服务上下文 */
    private String contextPath;

    /** 权限编码前缀, 例如: role:info: */
    private String permsPrefix;

    /** 后端包路径 */
    private String rearPackage;

    /** 是否前后端分离(0-不是;1-是;根据UI类型自动判断) */
    private String rearSplit;

    /** 是否使用DTO/VO模型 */
    private String rearDdd;

    /** 后端模板(biz,default) */
    private String rearTemp;

    /** 后端 Controller 地址 */
    private String rearUri;

    /** 实体类是否创建者模式 */
    private String buildEntity;

    /** 查询类是否创建者模式 */
    private String buildQuery;

    /** DTO是否创建者模式 */
    private String buildDto;

    /** VO是否创建者模式 */
    private String buildVo;

    /** 是否使用Lombok */
    private String useLombok;

    /** 是否使用swagger */
    private String useSwagger;

    /** 访问地址(全地址, 后端自动拼接:上下文+controller路径) */
    private String askUri;

    /** 模块名(路径) */
    private String moduleName;

    /** 前端包路径 */
    private String frontPackage;

    /** UI类型 */
    private String frontUiStyle;

    /** 备注 */
    private String remarks;



    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getTableName() {
        return tableName;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getAppId() {
        return appId;
    }

    public void setMenuId(String menuId) {
        this.menuId = menuId;
    }

    public String getMenuId() {
        return menuId;
    }

    public void setIframe(String iframe) {
        this.iframe = iframe;
    }

    public String getIframe() {
        return iframe;
    }

    public void setFuncName(String funcName) {
        this.funcName = funcName;
    }

    public String getFuncName() {
        return funcName;
    }

    public void setFuncAuthor(String funcAuthor) {
        this.funcAuthor = funcAuthor;
    }

    public String getFuncAuthor() {
        return funcAuthor;
    }

    public void setClazzName(String clazzName) {
        this.clazzName = clazzName;
    }

    public String getClazzName() {
        return clazzName;
    }

    public void setContextPath(String contextPath) {
        this.contextPath = contextPath;
    }

    public String getContextPath() {
        return contextPath;
    }

    public void setPermsPrefix(String permsPrefix) {
        this.permsPrefix = permsPrefix;
    }

    public String getPermsPrefix() {
        return permsPrefix;
    }

    public void setRearPackage(String rearPackage) {
        this.rearPackage = rearPackage;
    }

    public String getRearPackage() {
        return rearPackage;
    }

    public void setRearSplit(String rearSplit) {
        this.rearSplit = rearSplit;
    }

    public String getRearSplit() {
        return rearSplit;
    }

    public void setRearDdd(String rearDdd) {
        this.rearDdd = rearDdd;
    }

    public String getRearDdd() {
        return rearDdd;
    }

    public void setRearTemp(String rearTemp) {
        this.rearTemp = rearTemp;
    }

    public String getRearTemp() {
        return rearTemp;
    }

    public void setRearUri(String rearUri) {
        this.rearUri = rearUri;
    }

    public String getRearUri() {
        return rearUri;
    }

    public void setBuildEntity(String buildEntity) {
        this.buildEntity = buildEntity;
    }

    public String getBuildEntity() {
        return buildEntity;
    }

    public void setBuildQuery(String buildQuery) {
        this.buildQuery = buildQuery;
    }

    public String getBuildQuery() {
        return buildQuery;
    }

    public void setBuildDto(String buildDto) {
        this.buildDto = buildDto;
    }

    public String getBuildDto() {
        return buildDto;
    }

    public void setBuildVo(String buildVo) {
        this.buildVo = buildVo;
    }

    public String getBuildVo() {
        return buildVo;
    }

    public void setUseLombok(String useLombok) {
        this.useLombok = useLombok;
    }

    public String getUseLombok() {
        return useLombok;
    }

    public void setUseSwagger(String useSwagger) {
        this.useSwagger = useSwagger;
    }

    public String getUseSwagger() {
        return useSwagger;
    }

    public void setAskUri(String askUri) {
        this.askUri = askUri;
    }

    public String getAskUri() {
        return askUri;
    }

    public void setModuleName(String moduleName) {
        this.moduleName = moduleName;
    }

    public String getModuleName() {
        return moduleName;
    }

    public void setFrontPackage(String frontPackage) {
        this.frontPackage = frontPackage;
    }

    public String getFrontPackage() {
        return frontPackage;
    }

    public void setFrontUiStyle(String frontUiStyle) {
        this.frontUiStyle = frontUiStyle;
    }

    public String getFrontUiStyle() {
        return frontUiStyle;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("tableName", getTableName())
                .append("appId", getAppId())
                .append("menuId", getMenuId())
                .append("iframe", getIframe())
                .append("funcName", getFuncName())
                .append("funcAuthor", getFuncAuthor())
                .append("clazzName", getClazzName())
                .append("contextPath", getContextPath())
                .append("permsPrefix", getPermsPrefix())
                .append("rearPackage", getRearPackage())
                .append("rearSplit", getRearSplit())
                .append("rearDdd", getRearDdd())
                .append("rearTemp", getRearTemp())
                .append("rearUri", getRearUri())
                .append("buildEntity", getBuildEntity())
                .append("buildQuery", getBuildQuery())
                .append("buildDto", getBuildDto())
                .append("buildVo", getBuildVo())
                .append("useLombok", getUseLombok())
                .append("useSwagger", getUseSwagger())
                .append("askUri", getAskUri())
                .append("moduleName", getModuleName())
                .append("frontPackage", getFrontPackage())
                .append("frontUiStyle", getFrontUiStyle())
                .append("remarks", getRemarks())
                .toString();
    }

    /**
     * 主键信息
     */
    private DevTableColumnVO pkColumn;

    /**
     * 列
     */
    private List<DevTableColumnVO> columns;



    public DevTableColumnVO getPkColumn() {
        return pkColumn;
    }

    public void setPkColumn(DevTableColumnVO pkColumn) {
        this.pkColumn = pkColumn;
    }

    public List<DevTableColumnVO> getColumns() {
        return columns;
    }

    public void setColumns(List<DevTableColumnVO> columns) {
        this.columns = columns;
    }


}
